Views [dbo].[vSoaInvoiceSummary]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
Created2:16:50 PM Wednesday, February 22, 2012
Last Modified2:16:50 PM Wednesday, February 22, 2012
Columns
Name
InvoiceId
FinancialEntityId
InvoiceNumber
InvoiceDate
BillToPartyId
SoldToPartyId
Description
InvoiceType
InvoiceAmount
PaymentAdjustmentAmount
PendingPaymentAdjustmentAmount
Balance
AccountingMethod
SQL Script
CREATE VIEW [dbo].[vSoaInvoiceSummary]
AS
SELECT i.[InvoiceId],
       i.[FinancialEntityId],
       i.[InvoiceNumber],
       i.[InvoiceDate],
       i.[BillToPartyId],
       i.[SoldToPartyId],
       i.[Description],
           CASE WHEN i.[SOURCE_SYSTEM] = 'DUES' THEN 'SubscriptionBilling'
                WHEN i.[ORIGINATING_TRANS_NUM] > 0 AND EXISTS
                  (SELECT 1 FROM [dbo].[Activity] a
                      WHERE a.[ORIGINATING_TRANS_NUM] = i.[ORIGINATING_TRANS_NUM] AND a.[ACTIVITY_TYPE] = 'PLEDGE') THEN 'Pledge'
                WHEN i.[ORIGINATING_TRANS_NUM] > 0 AND EXISTS
                   (SELECT 1 FROM [dbo].[Activity] a
                      WHERE a.[ORIGINATING_TRANS_NUM] = i.[ORIGINATING_TRANS_NUM] AND a.[ACTIVITY_TYPE] = 'GIFT') THEN 'Gift'
                ELSE 'Regular'
            END
       AS InvoiceType,
       i.[InvoiceAmount],
       i.[PaymentAdjustmentAmount],
       SUM(ISNULL(pp.[Amount],0)) AS PendingPaymentAdjustmentAmount,
       i.[Balance] -SUM(ISNULL(pp.[Amount],0)) AS [Balance],
       'Accrual' AS AccountingMethod
         
  FROM [vSoaInvoiceSummaryInvoice] i
  LEFT JOIN [dbo].[vSoaPendingARPaymentAdjustment] pp ON pp.[INVOICE_REFERENCE_NUM] = i.[REFERENCE_NUM]
  WHERE i.[INVOICE_TYPE] != 'PP'
   AND ((i.[SOURCE_SYSTEM] != 'DUES'
    OR i.REFERENCE_NUM = (SELECT MAX([INVOICE_REFERENCE_NUM]) FROM [dbo].[Subscriptions] WHERE STATUS = 'A' AND [ID] = i.SoldToPartyId)))
GROUP BY i.[InvoiceId], i.[FinancialEntityId],  i.[InvoiceNumber], i.[InvoiceDate], i.[BillToPartyId], i.[SoldToPartyId],
         i.[Description], i.[InvoiceAmount], i.[PaymentAdjustmentAmount], i.[Balance], i.[ORIGINATING_TRANS_NUM], i.[SOURCE_SYSTEM]

UNION ALL

SELECT
       il.[InvoiceId] AS InvoiceId,
       (SELECT CASE WHEN (SELECT ISNULL([ShortValue],'') FROM [dbo].[System_Params]
         WHERE [ParameterName] = 'AR_Control.DefaultEntityDues')  != '' THEN (SELECT [ShortValue] FROM [dbo].[System_Params]
         WHERE [ParameterName] = 'AR_Control.DefaultEntityDues')
         ELSE (Select OrgCode from Org_Control where DefaultFlag = 1) END) AS FinancialEntityId,
       0 AS InvoiceNumber,
       MAX(il.BILL_DATE) AS InvoiceDate,
       s.BillToPartyId,
       s.SoldToPartyId,
       'Renewal Fees' AS Description,
       'SubscriptionBilling' AS InvoiceType,
       SUM(il.[ExtendedAmount])AS InvoiceAmount,
       SUM(il.[PaymentAdjustmentAmount]) AS PaymentAdjustmentAmount,
       SUM(il.[PendingPaymentAdjustmentAmount]) AS PendingPaymentAdjustmentAmount,
       SUM(il.[Balance]) AS Balance,
       'Cash' AS AccountingMethod
  FROM [dbo].[vSoaInvoiceSummaryCashBase] s INNER JOIN [dbo].[vSoaInvoiceLineCash] il ON s.[InvoiceId] = il.[InvoiceId] AND s.[SoldToPartyId] = il.[ShipToPartyId]
GROUP BY s.BillToPartyId, s.SoldToPartyId, il.[InvoiceId]


GO
Uses